package com.triones.api.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.triones.api.entity.HelpCategorizeDO;
import com.triones.api.entity.HelpDO;
import com.triones.api.entity.vo.HelpCategorizeVO;
import com.triones.api.entity.vo.HelpVO;

import java.util.List;

/**
 * 帮助中心 -接口
 */
public interface HelpService {

    /**
     * 分类列表
     * @return
     */
    List<HelpCategorizeVO> apiCategorizeList();

    /**
     * 帮助内容列表
     * @param cid
     * @param keyword
     * @return
     */
    List<HelpVO> apiHelpList(Long cid, String keyword);

    /**
     * 帮助中心分类列表（分页）
     * @param dto
     * @param pageQuery
     * @return
     */
    TableDataInfo<HelpCategorizeVO> selectPageHelpCategorizeList(HelpCategorizeDO dto, PageQuery pageQuery);

    /**
     * 帮助中心分类详情
     * @param id
     * @return
     */
    HelpCategorizeVO selectHelpCategorizeById(Long id);

    /**
     * 检验分类名称唯一性
     * @param dto
     * @return
     */
    boolean checkHelpCategorizeUnique(HelpCategorizeDO dto);

    /**
     * 新增帮助中心分类
     * @param dto
     */
    void insertHelpCategorize(HelpCategorizeDO dto);

    /**
     * 编辑帮助中心分类
     * @param dto
     */
    void updateHelpCategorize(HelpCategorizeDO dto);

    /**
     * 删除帮助中心分类
     * @param id
     */
    void deleteHelpCategorizeByIds(Long id);

    /**
     * 查询帮助分类所有
     * @return
     */
    List<HelpCategorizeVO> selectHelpCategorizeAll();

    /**
     * 列表（分页）
     * @param dto
     * @param pageQuery
     * @return
     */
    TableDataInfo<HelpVO> list(HelpDO dto, PageQuery pageQuery);

    /**
     * 详情
     * @param id
     * @return
     */
    HelpVO selectDataById(Long id);

    /**
     * 新增
     * @param dto
     */
    void insertData(HelpDO dto);

    /**
     * 编辑
     * @param dto
     */
    void updateData(HelpDO dto);

    /**
     * 删除
     * @param id
     */
    void deleteDataByIds(Long id);

    /**
     * 校验唯一性
     * @param dto
     * @return
     */
    boolean checkDataTitleUnique(HelpDO dto);
}
